Stepping motor driver

ABSTRACT

A stepping motor driver which drives a stepping motor for position and speed control. The stepping motor driver comprises: a current control means which outputs values corresponding to applied voltages; current sensors which detect phase currents; and a magnetic pole position estimation unit which uses the values corresponding to applied voltages and detected phase current values as outputs of the current sensors to obtain a magnetic pole position estimate. The magnetic pole position estimation unit calculates a magnetic pole position estimate from speed electromotive force estimates or from differences between phase currents at zero speed and detected phase current values.

This Nonprovisional application claims priority under 35 U.S.C. § 119(a) on patent application Ser. No(s). 2003-064300 and 2003-076707 filed in JAPAN on Mar. 11, 2003 and Mar. 20, 2003, the entire contents of which are hereby incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a stepping motor driver which drives a stepping motor for position and speed control.

2. Description of the Prior Art

A conventional stepping motor driver operates in a position-sensorless closed loop in which the terminal voltage of a motor is detected and compared with a reference voltage to detect the magnetic pole position based on the speed electromotive force of the motor and the excitation of the motor in the magnetic pole position based on the speed electromotive force is changed and the voltage applied to the motor is adjusted according to a position error as a difference between a position command and a magnetic pole position based on the speed electromotive force.

However, since this type of stepping motor driver detects the time of polarity reversal in the speed electromotive force of a motor, the detection resolution is insufficient, for example, when a subtle excitation position variation is needed for microstepping. In addition, a multipolar stepping motor has a high fundamental frequency and as the speed increases a current phase delay due to stepping motor winding inductance becomes larger. Therefore, when the excitation is changed according to the polarity reversal position in the speed electromotive force to adjust the applied voltage according to position error variation, high speed rotation beyond the range of saturation of applied voltage is difficult.

SUMMARY OF THE INVENTION

An object of the present invention is to provide a stepping motor driver which provides high resolution in magnetic pole position detection and enables high speed rotation.

According to one aspect of the present invention, there is provided a stepping motor driver which comprises: a current control means which outputs values corresponding to applied voltages; current sensors which detect phase currents; and a magnetic pole position estimation means which has inverse function characteristic operation means of motor winding constant and speed electromotive force estimation means. Here, the magnetic pole position estimation means receives the values corresponding to applied voltages and a detected phase current values as outputs of the current sensors; the inverse function characteristic operation means receives the detected phase current value to perform the motor winding constant inverse function characteristic operation; and based on a difference between output of the inverse function characteristic operation means and the value corresponding to applied voltage, the speed electromotive force estimation means calculates speed electromotive force estimate to obtain a magnetic pole position estimate from the speed electromotive force estimates.

According to another aspect of the invention, there is provided a stepping motor driver which comprises: a current control means which outputs values corresponding to applied voltages; current sensors which detect phase currents; and a magnetic pole position estimation means which has motor winding constant characteristic operation means and difference operation means. Here, the magnetic pole position estimation means receives the values corresponding to applied voltages and detected phase current values as outputs of the current sensors; the motor winding constant characteristic operation means calculates phase current at zero speed from the value corresponding to applied voltage; the difference operation means calculates a difference between the phase current at zero speed and the detected phase current value to obtain a magnetic pole position estimate from the differences.

These stepping motor drivers make it possible to obtain a magnetic pole position estimate with high resolution at high speed in stepping motor operation so that drive characteristics equivalent to those of a motor with a position sensor can be achieved even in an ordinary stepping motor without a special sensor. Therefore, a stepping motor driver according to the present invention is less likely to cause step-out in a motor than a closed loop control system and thus provides a highly reliable motor drive system.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be more particularly described with reference to the accompanying drawings, in which:

FIG. 1 is a block diagram showing a stepping motor driver according to a first embodiment of the present invention;

FIG. 2 is a block diagram showing the relationship between a stepping motor in the driver shown in FIG. 1 and a magnetic pole position estimation unit;

FIG. 3 is a block diagram showing a position controller in the driver shown in FIG. 1;

FIG. 4 is a block diagram showing a current controller in the driver shown in FIG. 1;

FIG. 5 is a block diagram showing a stepping motor driver according to a second embodiment of the present invention;

FIG. 6 is a block diagram showing the relationship between a stepping motor in the driver shown in FIG. 5 and a magnetic pole position estimation unit;

FIG. 7 is a block diagram showing a position controller in the driver shown in FIG. 5;

FIG. 8 is a block diagram showing a stepping motor driver according to a third embodiment of the present invention;

FIG. 9 is a block diagram showing a magnetic pole position estimation unit in the driver shown in FIG. 8;

FIG. 10 is a block diagram showing a position controller in the driver shown in FIG. 8;

FIG. 11 is a block diagram showing a stepping motor driver according to a fourth embodiment of the present invention; and

FIG. 12 is a block diagram showing a position controller in the driver shown in FIG. 11.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The speed electromotive forces in the alpha and beta phases of a 2-phase hybrid stepping motor are expressed by Equations (1) and (2) below: e _(α)=−Φω_(re) sin θ_(re)  (1) e _(β)=Φω_(re) cos θ_(re)  (2)

The voltages in the alpha and beta phases of the stepping motor are expressed by Equations (3) and (4) below: V _(α)=(R _(α) +sL _(α))·i _(α) +e _(α)  (3) V _(β)=(R _(β) +sL _(β))·i _(β) +e _(β)  (4)

In Equations (1) through (4), e_(α) and e_(β) represent speed electromotive forces, i_(α) and i_(β) phase currents, θ_(re) a motor rotation angle in electrical degrees, ω_(re) a rotation angular speed of a motor shaft in electrical degrees, Φ a motor magnetic flux, V_(α) and V_(β) applied voltages, R_(α) and R_(β) winding resistances, L_(α) and L_(β) winding inductances, and s a Laplace operator. Subscripts _(α) and _(β) show the alpha phase and beta phase of the stepping motor, respectively.

For formulation of a state equation in brushless motor analysis, it is common that the first derivative of a speed electromotive force is zero. However, because transitional change is repeated in a stepping motor, a calculation error may be serious if the first derivatives of speed electromotive forces e_(α) and e_(β) are zero.

For this reason, in the present invention, a magnetic pole position estimation unit is designed in accordance with a state equation in which the second derivatives of speed electromotive forces e_(α) and e_(β) are zero. This improves estimation accuracy of the magnetic pole position estimation unit. Shown below are state equations (5) and (6) for the alpha and beta phases of the stepping motor where the second derivatives of speed electromotive forces e_(α) and e_(β) are zero: $\begin{matrix} {{\frac{\mathbb{d}}{\mathbb{d}t}\begin{bmatrix} i_{\alpha} \\ e_{\alpha} \\ {\overset{.}{e}}_{\alpha} \end{bmatrix}} = {{\begin{bmatrix} {- \frac{R_{\alpha}}{L_{\alpha}}} & {- \frac{1}{L_{\alpha}}} & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \end{bmatrix}\begin{bmatrix} i_{\alpha} \\ e_{\alpha} \\ {\overset{.}{e}}_{\alpha} \end{bmatrix}} + {\begin{bmatrix} \frac{1}{L_{\alpha}} \\ 0 \\ 0 \end{bmatrix}V_{\alpha}}}} & (5) \\ {{\frac{\mathbb{d}}{\mathbb{d}t}\begin{bmatrix} i_{\beta} \\ e_{\beta} \\ {\overset{.}{e}}_{\beta} \end{bmatrix}} = {{\begin{bmatrix} {- \frac{R_{\beta}}{L_{\beta}}} & {- \frac{1}{L_{\beta}}} & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \end{bmatrix}\begin{bmatrix} i_{\beta} \\ e_{\beta} \\ {\overset{.}{e}}_{\beta} \end{bmatrix}} + {\begin{bmatrix} \frac{1}{L_{\beta}} \\ 0 \\ 0 \end{bmatrix}V_{\beta}}}} & (6) \end{matrix}$

When speed electromotive forces e_(α) and e_(β) are estimated in accordance with Equations (5) and (6), magnetic pole position θ of the stepping motor can be estimated in accordance with Equation (7): $\begin{matrix} {\theta = {\tan^{- 1}\frac{- e_{\alpha}}{e_{\beta}}}} & (7) \end{matrix}$

FIG. 1 shows the structure of a 2-phase hybrid stepping motor according to a first embodiment of the present invention. Referring to FIG. 1, a magnetic pole position estimation unit 50 generates a magnetic pole position estimate θ_(nf) in accordance with Equations (5) through (7). Specifically, the magnetic pole position estimation unit 50 receives output (namely detected phase current value i_(αf)) of a current sensor 61 for detection of the alpha phase current of a stepping motor 70, output (namely detected phase current value i_(βf)) of a current sensor 62 for detection of the beta phase current and alpha phase voltage V_(α) and beta phase voltage V_(β) which are applied to the stepping motor 70, and generates a magnetic pole position estimate θ_(nf). A position controller 30 receives position command θ* which has entered a position command input terminal 10 and the magnetic pole position estimate θ_(nf). A current controller 40 receives output of the position controller 30 and current amplitude command i* which has entered the current amplitude command input terminal 20, and outputs voltages V_(α) and V_(β) which are applied to the stepping motor 70.

Next, the process of magnetic pole position estimation is explained in detail referring to FIG. 2. FIG. 2 shows the relationship between the stepping motor 70 and the magnetic pole position estimation unit 50. In the figure, the motor is a 2-phase stepping motor and only one phase (alpha phase) of the motor is illustrated; and only one phase (alpha phase) of the magnetic pole position estimation unit is illustrated in detail and the other phase (beta phase) is illustrated in a simplified form. Since the stepping motor has characteristics similar to those of a permanent magnet synchronous motor as mentioned above, this block diagram is based on the assumption that the analysis method for synchronous motors can be used to grasp and analyze the behavior of the stepping motor.

The stepping motor 70 receives alpha phase voltage V_(α) from the current controller 40 and generates motor shaft rotational angular speed ω_(re). Specifically, inside the stepping motor 70, a speed electromotive force e_(α) which is proportional to electromotive force constant 75 (k_(e)) is generated for the motor shaft rotational angular speed ω_(re) and fed back to an adder 71. The adder 71 calculates the difference between the alpha phase voltage V_(α) and the speed electromotive force e_(α) and adds it to a motor winding constant 72 so that phase current i_(α) flows through an alpha phase winding. The phase current i_(α) is converted into shaft torque T by torque constant 73 (k_(t)). The shaft torque T is converted into motor shaft rotational angular speed ω_(re) by means of a motor mechanical element 74 (approximated to 1/Js in FIG. 2).

In the structure of the stepping motor (alpha phase) shown in FIG. 2, the phase current i_(α) flows through the alpha phase winding and the current sensor 61 can detect the phase current i_(α).

In the magnetic pole position estimation unit 50, an alpha phase speed electromotive force estimation section 51 generates an alpha phase speed electromotive force estimate E_(αf). Specifically, the alpha phase speed electromotive force estimation section 51 receives a detected phase current value i_(αf) and alpha phase voltage V_(α). A characteristic operator 54 of motor winding constant inverse function multiplies the detected phase current value i_(αf) by a factor of (R_(α)+sL_(α)). And, an adder 53 calculates the difference between output of the inverse function characteristic operator 54 and alpha phase voltage V_(α). A smoothing circuit 55 which suppresses AC ripples receives the output of the adder 53 and calculates alpha phase speed electromotive force estimate E_(αf) in accordance with Equation (5). Likewise, with regard to the beta phase of the stepping motor 70, a beta phase speed electromotive force estimation section 52 calculates beta phase speed electromotive force estimate E_(βf) in accordance with Equation (6), though not shown in detail in FIG. 2. In addition, a position operator 56 converts the speed electromotive force estimates E_(αf) and E_(βf) into a magnetic pole position estimate θ_(nf) in accordance with Equation (7) and sends the magnetic pole position estimate θ_(n)f to the position controller 30 as an output of the magnetic pole position estimation unit 50.

Next, the position controller 30 is explained in detail. FIG. 3 shows the structure of the position controller 30. The position controller 30 receives position command θ* and magnetic pole position estimate θ_(nf). An adder 31 calculates the difference between position command θ* and magnetic pole position estimate θ_(nf), namely a position error ε and gives the position error ε to a position compensator 32. The position compensator 32 amplifies the position error ε and an adder 33 adds the output of the position compensator 32 to the magnetic pole position estimate θ_(nf) to output position control signal λ.

The stepping motor 70 rotates according to position command θ*. When a command is given, a position error ε occurs temporarily. In the structure shown in FIG. 3, when a position error ε occurs, the position control signal λ is magnetic pole position estimate θ_(nf) plus an amplified value of position error ε. For example, if the position compensator 32 is a proportional element with 1× gain, the position control signal λ is equal to the position command θ*. Usually, a PI compensator is used for the position compensator 32. In this case, when a position error ε occurs continuously, the position control signal λ increases with time.

Next, the current controller 40 is explained in detail. FIG. 4 shows the structure of the current controller 40. The current controller 40 receives external current amplitude command i* from the current amplitude command input terminal 20, position control signal λ and detected phase current values i_(αf) and i_(βf) and outputs voltages V_(α) and V_(β). Specifically, an excitation signal generator 41 generates 2-phase alternating currents cos λ and sin λ as reference signals for voltages V_(α) and V_(β) using the position control signal λ as a position signal. Multipliers 42 and 43 generate current commands i*cos λ and i*sin λ by multiplying the 2-phase alternating currents cos λ and sin λ by external current amplitude command i*. Adders 44 and 45 calculate the current difference between current commands i*cos λ and i_(αf) and the current difference between i*sin λ and i_(βf), respectively. Current compensators 46 and 47 amplify these current differences and add the amplified ones to a PWM (pulse width modulator) 48. The PWM 48 performs pulse-width modulation of output of the current compensator 46, namely control voltage V_(acrα) to generate inverter drive signal V_(gα) and also performs pulse width modulation of output of the current compensator 47, namely control voltage V_(acrβ) to generate inverter drive signal V_(gβ). An inverter 49 outputs alpha and beta phase voltages V_(α) and V_(β) according to inverter drive signals V_(gα) and V_(gβ), respectively.

In other words, the current controller 40 controls currents in a way to make the difference between the current command and the phase current small, and also determines the excitation position of the stepping motor 70 according to position control signal λ. This means that the stepping position of the stepping motor 70 and the motor excitation position with rise in the speed can be adjusted using position control signal λ.

The current controller 40 constitutes a current control means, the characteristic operator 54 constitutes an inverse function characteristic operation means, the adder 53 and the smoothing circuit 55 constitute speed electromotive force estimation means, and the magnetic pole position estimation unit 50 constitutes a magnetic pole position estimation means.

When the stepping motor 70 is treated as a permanent magnet synchronous motor, speed electromotive force estimates E_(αf) and E_(βf) as estimated values of speed electromotive forces e_(α) and e_(β) are obtained as follows. The inverse function characteristic operator 54 receives detected phase current values i_(αf) and i_(βf) and carries out characteristic operation of motor winding constant inverse function; and the smoothing circuit 55 smoothes the difference between the output of the inverse function characteristic operator 54 and applied voltages V_(α) and V_(β). Magnetic pole position estimate θ_(nf) is calculated from the speed electromotive force estimates E_(αf) and E_(βf) in accordance with Equation (7) and a comparison is made between magnetic pole position estimate θ_(nf) and position command θ* to control the excitation timing properly so that step-out is prevented and vibration is reduced in stepping motor operation.

For the magnetic pole position estimation unit 50, the characteristics of the smoothing circuit 55 must be determined. Since the motor shaft rotational angular speed ω_(re) (speed electromotive force fundamental frequency) is high in the stepping motor 70, it is necessary to estimate the magnetic pole position θ at high speed. Therefore, in the present invention, the magnetic pole position estimation unit 50 uses a discrete system to deal with estimation operation and in order to accelerate convergence, pole placement is made in finite settling time.

When Equations (6) and (7) are made discrete, for example, by Euler's method, the gain of the smoothing circuit 55 is expressed by Equation (8): $\begin{matrix} {{k_{1} = {- \frac{2L}{T}}},{k_{2} = {- \frac{L}{T^{2}}}}} & (8) \end{matrix}$

where T represents a sampling period L represents a winding inductance (L=L_(α)=L_(β)).

As a consequence, magnetic pole position estimate θ_(nf) is obtained with minimized estimation lag. Because continuously changing speed electromotive forces e_(α) and e_(β) are estimated, the resolution in magnetic pole position estimate θ_(nf) is high though it relies on the operation accuracy of the discrete system. Thus, even in a drive system which handles finer angles than the basic resolution of the stepping motor 70, closed-loop operation with magnetic pole position estimate θ_(nf) is possible.

Furthermore, the magnetic pole position estimation unit 50, which has the characteristic of finite time settling, reduces time lag in magnetic pole position estimation so that it can not only estimate sinusoidal position change but make an estimation of magnetic pole position θ with less error even when pulse voltage variation is sharp. Therefore, the unit is useful for normal stepping operation with a low resolution.

In addition, since position command θ* and magnetic pole position estimate θ_(nf) are used to control the motor excitation position, a current lag caused by a rotation speed rise can be compensated for, permitting high speed rotation of the stepping motor 70.

Inverter drive signals V_(gα) and V_(gβ) may be entered into the magnetic pole position estimation unit 50 instead of voltages V_(α) and V_(β).

Regarding applied voltages V_(α) and V_(β) and detected phase current values i_(αf) and i_(βf), it is possible that coordinate transformation from multi-phase to 2-phase is made to obtain a 2-phase equivalent signal and the 2-phase equivalent signal is entered as values corresponding to applied voltages and detected phase current values into the magnetic pole position estimation means. Therefore, the present invention can be applied to stepping motors with different phases.

FIG. 5 shows the structure of a 2-phase hybrid stepping motor driver according to a second embodiment of the present invention. In the driver shown in FIG. 5, the current controller 40 is the same as in the driver shown in FIG. 1 and the position controller and magnetic pole position estimation unit are different from those in the driver in FIG. 1.

While the magnetic pole position estimation unit 50 of the driver in FIG. 1 receives voltages V_(α) and V_(β) and detected phase current values i_(αf) and i_(βf), the magnetic pole position estimation unit 500 of the driver in FIG. 5 receives control voltages V_(acrα) and V_(acrβ) and detected phase current values i_(αf) and i_(β)f. The control voltages V_(acrα) and V_(acrβ) are proportional to the voltages V_(α) and V_(β) and as shown in FIG. 6, a coefficient multiplier 57 is added inside an alpha phase speed electromotive force estimation section 511. A beta phase speed electromotive force estimation section 512 is structurally the same as the alpha phase speed electromotive force estimation section 511 and its detail is omitted in FIG. 6.

The position controller of the driver in FIG. 1 adds an amplified value of position error ε to magnetic pole position estimate θ_(nf) to obtain position control signal λ. On the other hand, the position controller 300 of the driver in FIG. 5 adds an amplified value of position error ε, and magnetic pole position estimate θ_(nf) differentiated by the differentiator 34 and multiplied by the coefficient multiplier 35, to magnetic pole position estimate θ_(nf) to obtain position control signal λ. This process is intended to adjust the excitation position of the stepping motor 70 in response to change in speed.

Here, the magnetic pole position estimation unit 500 constitutes a magnetic pole position estimation means.

Described next is a 2-phase hybrid stepping motor driver according to another embodiment of the present invention.

The alpha and beta phase speed electromotive forces e_(α), e_(β) of the 2-phase hybrid stepping motor are expressed by Equations (9) and (10), respectively: e _(α)=Φω_(re) cos θ_(re)  (9) e _(β)=Φω_(re) sin θ_(re)  (10)

Although Equations (9) and (10) express speed electromotive forces like Equations (1) and (2), they redefine speed electromotive forces with a different angle reference for the sake of convenience.

The voltage equations of the alpha and beta phases of the stepping motor are expressed by Equations (11) and (12): V _(α)=(R _(α) +sL _(α))·i _(α) +e _(α) =Z _(α) i _(α) +e _(α)  (11) V _(β)=(R _(β) +sL _(β))·i _(β) +e _(β) =Z _(β) i _(β) +e _(β)  (12) where motor winding constant Z_(α)=R_(α)+sL_(α), Z_(β)=R_(β)+sL_(β).

According to Equations (11) and (12), when the stepping motor is in a zero speed (halt) state, speed electromotive forces e_(α) and e_(β) are zeros; thus, the relation between applied voltage V_(α) (V_(β)) and phase current i_(α) (i_(β)) is expressed by Equation (13) (Equation (14)) when the same voltage as expressed by Equation (11) (Equation (12)) is applied: V _(α)=(R _(α) +sL _(α))·i _(0α) =Z _(α) i _(0α)  (13) V _(β)=(R _(β) +sL _(β))·i _(0β) =Z _(β) i _(0β)  (14)

where i_(0α) and i_(0β) represent phase currents at zero speed.

Subtraction of Equation (13) from Equation (11) leads to Equation (15): $\begin{matrix} \begin{matrix} {e_{\alpha} = {\left( {R_{a} + {sL}_{\alpha}} \right) \cdot \left( {i_{0\alpha} - i_{\alpha}} \right)}} \\ {= {{R_{\alpha}\left( {i_{0\alpha} - i_{\alpha}} \right)} + {{sL}_{\alpha}\left( {i_{0\alpha} - i_{\alpha}} \right)}}} \\ {= {{R_{\alpha}\left( {i_{0\alpha} - i_{\alpha}} \right)} + {{sL}_{\alpha} \cdot \left( {i_{0\alpha} - i_{\alpha}} \right)} + {L_{\alpha}{s\left( {i_{0\alpha} - i_{\alpha}} \right)}}}} \end{matrix} & (15) \end{matrix}$

Similarly, subtraction of Equation (14) from Equation (12) leads to Equation (16): $\begin{matrix} \begin{matrix} {e_{\beta} = {\left( {R_{\beta} + {sL}_{\beta}} \right) \cdot \left( {i_{0\beta} - i_{\beta}} \right)}} \\ {= {{R_{\beta}\left( {i_{0\beta} - i_{\beta}} \right)} + {{sL}_{\beta}\left( {i_{0\beta} - i_{\beta}} \right)}}} \\ {= {{R_{\beta}\left( {i_{0\beta} - i_{\beta}} \right)} + {{sL}_{\beta} \cdot \left( {i_{0\beta} - i_{\beta}} \right)} + {L_{\beta}{s\left( {i_{0\beta} - i_{\beta}} \right)}}}} \end{matrix} & (16) \end{matrix}$

Assuming that phase current differences i_(0α) i_(α) and i_(0β)−i_(β) are respectively I_(m) cos θ_(re) and I_(m) sin θ_(re) and L_(α)=L_(β)=L=constant, R_(α)=R_(β)=R=constant, Equations (15) and (16) are transformed into Equations (17) and (18), respectively: $\begin{matrix} {E_{\alpha\quad f} = {{{RI}_{m}\quad\cos\quad\theta_{re}} + {{L \cdot {sI}_{m} \cdot \cos}\quad\theta_{re}} - {\omega_{re}{LI}_{m}\quad\sin\quad\theta_{re}}}} & (17) \\ {\quad{= {{{\left\lbrack {{RI}_{m} + {L \cdot {sI}_{m}}} \right\rbrack \cdot \cos}\quad\theta_{re}} - {\omega_{re}{LI}_{m}\quad\sin\quad\theta_{re}}}}} & \quad \\ {\quad{= {\sqrt{\left( {{RI}_{m} + {L \cdot {sL}_{m}}} \right)^{2} + \left( {\omega_{re}{LI}_{m}} \right)^{2}}{\cos\left( {\theta_{re} + \phi} \right)}}}} & \quad \\ {E_{\beta\quad f} = {{{RI}_{m}\quad\sin\quad\theta_{re}} + {{L \cdot {sI}_{m} \cdot \sin}\quad\theta_{re}} + {\omega_{re}{LI}_{m}\quad\cos\quad\theta_{re}}}} & (18) \\ {\quad{= {{{\left\lbrack {{RI}_{m} + {L \cdot {sI}_{m}}} \right\rbrack \cdot \sin}\quad\theta_{re}} + {\omega_{re}{LI}_{m}\quad\cos\quad\theta_{re}}}}} & \quad \\ {\quad{= {\sqrt{\left( {{RI}_{m} + {L \cdot {sI}_{m}}} \right)^{2} + \left( {\omega_{re}{LI}_{m}} \right)^{2}}{\sin\left( {\theta_{re} + \phi} \right)}}}} & \quad \end{matrix}$

Here, Equations (17) and (18), phase angle Φ=tan⁻¹{ω_(re)L/(R+LsI_(m))}

Therefore, magnetic pole position estimate θ_(nf) can be calculated from the ratio of alpha and beta phase speed electromotive forces E_(αf) and E_(βf) as shown in Equation (19): θ_(nf)=tan⁻¹(E_(βf)/E_(αf))=θ_(re)+Φ  (19)

Based on the assumption, θ_(re)=tan⁻¹ {(i_(0β)−i_(β))/(i_(0α) i_(α))} holds and thus Equation (19) may be transformed into Equation (20): $\begin{matrix} \begin{matrix} {\theta_{nf} = {{\tan^{- 1}\left( \frac{\left( {i_{0\beta} - i_{\beta}} \right)}{\left( {i_{0\alpha} - i_{\alpha}} \right)} \right)} + {\tan^{- 1}\left( \frac{\omega_{re}L}{\left( {R - {LsI}_{m}} \right)} \right)}}} \\ {\cong {{\tan^{- 1}\left( \frac{\left( {i_{0\beta} - i_{\beta}} \right)}{\left( {i_{0\alpha} - i_{\alpha}} \right)} \right)} + {\tan^{- 1}\left( \frac{\omega_{re}L}{R} \right)}}} \end{matrix} & (20) \end{matrix}$

Therefore, when phase currents at zero speed i_(0α) and i_(0β) and phase currents i_(α) and i_(β) in rotation are detected, magnetic pole position estimate θ_(nf) can be obtained.

FIG. 8 shows the structure of a stepping motor driver according to a third embodiment of the present invention. Referring to FIG. 8, a magnetic pole position estimation unit 150 receives detected phase current values i_(αf) and i_(βf), voltages V_(α), and V_(β) and speed command ω* obtained by differentiation of position command θ* by a differentiator 81 and generates magnetic pole position estimate θ_(nf). A position controller 130 receives position command θ* which has entered a position command input terminal 10, and magnetic pole position estimate θ_(nf). A current controller 40 receives output of a position controller 130 and current amplitude command i* which has entered a current amplitude command input terminal 20, and outputs alpha and beta phase voltages V_(α) and V_(β) to be applied to the stepping motor 70.

FIG. 9 shows the structure of a magnetic pole position estimation unit 150. Coefficient multipliers 151 and 152 respectively receive voltages V_(α) and V_(β), and motor winding constant characteristic operators 153 and 154 respectively receive output of the coefficient multipliers 151 and 152 to obtain phase currents at zero speed i_(0α) and i_(0β). Adders 155 and 156 respectively receive detected phase current values i_(αf) and i_(βf) through one of the input terminals and receive phase currents at zero speed i_(0α) and i_(0β) through the other input terminal to obtain differences between phase currents at zero speed i_(0α) and i_(0β) and detected phase current values i_(αf) and i_(βf) (which depend on phase currents i_(α) and i_(β)). An arctangent operator 157 receives output of the adders 155 and 156 to calculate motor rotation angle θ_(re) as represented by the first term of Equation (20). On the other hand, a phase angle operator 158 uses motor speed command ω* to make a calculation of the second term of Equation (20). An adder 159 adds the second term of Equation (20) to the first term of Equation (20), where the first term represents motor rotation speed θ_(re) and the second term represents current phase angle Φ with respect to the motor rotation speed as generated by the winding time constant, thus outputting magnetic pole position estimate θ_(nf).

Here, since motor winding constant characteristic operators 153 and 154 are to output phase currents at zero speed i_(0α) and i_(0β) (values proportional to phase currents at zero speed) respectively, they each consist of a series circuit having a resistor and a capacitor arranged so as to provide the same time constant as the motor winding constant, where the terminal voltage of the capacitor is their output. The relation between phase current at zero speed i_(0α) and capacitor terminal voltage V_(c) is expressed by Equation (21) and therefore the gain of the coefficient multipliers 151 and 152 should be 1/R: $\begin{matrix} {{v_{c} = {{\frac{\frac{1}{sC}}{r + \frac{1}{sC}}V_{\alpha}} = {\frac{1}{1 + {sCr}}V_{\alpha}}}},{i_{0\alpha} = {\frac{V_{\alpha}}{R + {sL}} = {{{\frac{1}{R}\left( \frac{1}{1 + \frac{sL}{R}} \right)V_{\alpha}}\therefore i_{0\alpha}} = {\frac{1}{R}v_{c}}}}}} & (21) \end{matrix}$

where C represents the capacitance of the capacitor used in the winding constant characteristic operators 153 and 154 and r represents the resistance of the resistor used in the winding constant characteristic operators 153 and 154. Here the constant is determined in a way to satisfy the relation L/R=Cr.

Next, the position controller 130 is explained in detail. FIG. 10 shows the structure of the position controller 130. The position controller 130 receives position command θ* and magnetic pole position estimate θ_(nf). An adder 131 calculates the difference between position command θ* and magnetic pole position estimate θ_(nf), namely a position error ε and a position compensator 132 receives the position error ε. The position compensator 132 amplifies the position error ε. If the amplified position error ε exceeds a reference value θ_(ref) (for example, 90 degrees of electrical angle), output γ is maintained constant (for example, 90 degrees of electrical angle). An adder 133 adds output γ of the position compensator 132 to the magnetic pole position estimate θ_(nf) to output position control signal λ.

In the position controller 130, even if the position error ε exceeds the reference value θ_(ref), the motor excitation angle can be maintained constant with respect to magnetic pole position estimate θ_(nf) in the step-out limit, because output γ is maintained constant. Hence, the stepping motor can avoid step-out as far as magnetic pole position estimation is possible.

The current controller 40 constitutes a current control means; the motor winding constant characteristic operators 153 and 154 constitute motor winding constant characteristic operation means; the adders 155 and 156 constitute differences operation means; the magnetic pole position estimation unit 150 constitutes a magnetic pole position estimation means; the adder 131 constitutes a position error operation means; the position compensator 132 constitutes a comparison means; and the differentiator 81 constitutes a speed command operation means.

Accordingly, phase currents i_(α) and i_(β) are detected by the current sensors 61 and 62 and phase currents at zero speed i_(0α) and i_(0β) are outputted by the motor winding constant characteristic operators 153 and 154 as first-order lag elements with a time constant equal to the winding constant. Because the stepping motor at zero speed may be considered as a series circuit with a winding resistance and a winding inductance, the motor current is first-order lag response to the applied voltage, which is determined by the winding constant. Hence, the motor winding constant characteristic operators 153 and 153 correspond to motor models at zero speed and their outputs respectively correspond to phase currents at zero speed i_(0α) and i_(0β). The adder 155 (156) calculates the difference between phase current i_(α) (i_(β)) and phase current at zero speed i_(0α) (i_(0β)) and the arctangent operator 157 makes a calculation in accordance with Equation (20) to obtain magnetic pole position estimate θ_(nf). The coefficient multipliers 151 and 152 are elements which adjust a discrepancy between the zero speed state generated by electronic components as motor winding constant characteristic operators 153, 154 (zero speed motor models) and the zero speed state generated by an actual motor winding constant. The second term of Equation (2) can be obtained from speed command ω* as the result of differentiation of position command θ* and the motor winding constant. Therefore, the structure shown in FIG. 8 permits output of magnetic pole position estimate θ_(nf) which is calculated in accordance with Equation (20). In addition, since magnetic pole position θ is estimated according to continuously changing phase currents i_(α) and i_(β) (detected phase current values i_(αf) and i_(βf)), it is possible to obtain magnetic pole position estimate θ_(nf) with high resolution.

The first term of Equation (20) expresses an angle proportional to speed electromotive forces e_(α) and e_(β) and the second term of Equation (20) can also be obtained from an angular frequency as the result of differentiation of the first term of Equation (20) instead of differentiation of position command θ*, and the motor winding constant.

When calculation of Equation (20) is performed in a continuous system, magnetic pole position estimation can be done without a time lag; when it is performed in a discrete system, magnetic pole position estimation can be done with a lag of one sampling period required for speed calculation and calculation by first-order lag elements as motor winding constant characteristic operators. Consequently, the driver according to this embodiment can be applied to high speed rotation in a multi-phase hybrid stepping motor.

Because the motor winding constant characteristic operators 153 and 154 are first-order lag elements, when they each consist of a series circuit with a resistor and a capacitor the time constant of which is equal to that of the stepping motor 70 and voltages V_(α) and V_(β) are applied to the series circuit to output the result of multiplication of the terminal voltage of the capacitor by a coefficient as an output signal, signals equivalent to phase currents at zero speed i_(0α) and i_(0β) can be obtained. Hence, the motor winding constant characteristic operators 153 and 154 are very practical.

Inverter drive signals V_(gα) and V_(gβ) may be entered into the magnetic pole position estimation unit 150 instead of voltages V_(α) and V₆₂ .

Regarding applied voltages V_(α) and V_(β) and detected phase current values i_(αf) and i_(βf), it is possible that coordinate transformation from multi-phase to 2-phase is made to obtain a 2-phase equivalent signal and the 2-phase equivalent signal is entered as a value corresponding to applied voltage and a detected phase current value into the magnetic pole position estimation means. Therefore, the present invention can be applied to stepping motors with different phases.

FIG. 11 shows the structure of a stepping motor driver according to a fourth embodiment of the present invention. In the driver shown in FIG. 11, the current controller 40 is the same as in the driver shown in FIG. 8 and the position controller and the magnetic pole position estimation unit are different from those in the driver in FIG. 8.

While the magnetic pole position estimation unit 150 of the driver in FIG. 8 receives voltages V_(α) and V_(β) and detected phase current values i_(αf) and i_(β)f, the magnetic pole position estimation unit 1500 of the driver in FIG. 11 receives control voltages V_(acrα) and V_(acrβ) and detected phase current values i_(αf) and i_(βf). The structure of the magnetic pole position estimation unit 1500 is the same as in the driver shown in FIG. 8. However, since the control voltages V_(acrα) and V_(acrβ) are proportional to voltages V_(α) and V_(β), the gain of coefficient multipliers 151 and 152 in the magnetic pole position estimation unit 1500 is different from that in the driver in FIG. 8, namely their gain is 1/R multiplied by a coefficient. As mentioned above, outputs of the inverter 49 are V_(α) and V_(β) and control voltages V_(acrα) and V_(acrβ) are proportional to voltages V_(α) and V_(β). Hence, when control voltages V_(acrα) and V_(acrβ) are adjusted by coefficient multipliers 151 and 152 and then applied to the motor winding constant characteristic operators 153 and 154, it is possible to obtain signals equivalent to ones obtained with voltages V_(α) and V_(β). However, while voltages V_(α) and V_(β) include a dead time voltage to prevent shorting between the upper and lower arms of the inverter 49, control voltages V_(acrα) and V_(acrβ) do not include such a dead time voltage; therefore, when control voltages V_(acrα) and V_(acrβ) are used, it is desirable to make an adjustment, taking dead time into consideration.

Regarding the position controller, in the driver shown in FIG. 8, position control signal λ is obtained by adding an amplified value of position error ε to magnetic pole position estimate θ_(nf). On the other hand, in the driver shown in FIG. 11, an amplified value of position error ε and magnetic pole position estimate θ_(nf) differentiated by a differentiator 134 and multiplied by a coefficient multiplier 135 are added to magnetic pole position estimate θ_(nf) in a position controller 1300 to obtain position control signal λ, as shown in FIG. 12. This adjusts the excitation position of the stepping motor in response to speed variation. A comparator 137 compares position error ε with a reference as output of a reference generator 136 and, if the value of ε exceeds the reference, generates an excessive error signal err. The excessive error signal err is used as a signal which interrupts output of the current controller 40 and stops operation of the stepping motor 70.

The magnetic pole position estimation unit 1500 constitutes a magnetic pole position estimation means.

According to the present invention, an integrated circuit in the form of a microprocessor or the like may be used in calculating discrete values and a compact, inexpensive stepping motor driver can be realized. 

1. A stepping motor driver comprising: a) a current control means which outputs values corresponding to applied voltages; b) current sensors which detect phase currents; and c) a magnetic pole position estimation means which has inverse function characteristic operation means of motor winding constant and speed electromotive force estimation means, wherein the magnetic pole position estimation means receives the values corresponding to applied voltages and a detected phase current values as outputs of the current sensors; the inverse function characteristic operation means receives the detected phase current value to perform the motor winding constant inverse function characteristic operation; and based on a difference between output of the inverse function characteristic operation means and the value corresponding to applied voltage, the speed electromotive force estimation means calculates speed electromotive force estimate to obtain a magnetic pole position estimate from the speed electromotive force estimates.
 2. The stepping motor driver as claimed in claim 1, wherein the values corresponding to applied voltages are applied voltages.
 3. The stepping motor driver as claimed in claim 1, wherein the values corresponding to applied voltages are control voltages.
 4. The stepping motor driver as claimed in claim 1, wherein the values corresponding to applied voltages are inverter drive signals.
 5. The stepping motor driver as claimed in claim 1, further comprising an input terminal for a position command, wherein the position command and the magnetic pole position estimate are used to control a motor excitation position.
 6. The stepping motor driver as claimed in claim 1, wherein the magnetic pole position estimation means obtains the speed electromotive force estimates by discrete value calculation and also calculates the speed electromotive force estimates in accordance with state equations in which the second derivatives of the stepping motor speed electromotive forces are zero.
 7. The stepping motor driver as claimed in claim 1, wherein pole placement is made in finite settling time.
 8. The stepping motor driver as claimed in claim 1, wherein, regarding the values corresponding to applied voltages and the detected phase current values, coordinate transformation from multi-phase to 2-phase is made to obtain 2-phase equivalent signals and the 2-phase equivalent signals are entered as the values corresponding to applied voltages and the detected phase current values into the magnetic pole position estimation means.
 9. A stepping motor driver comprising: a) a current control means which outputs values corresponding to applied voltages; b) current sensors which detect phase currents; and c) a magnetic pole position estimation means which has motor winding constant characteristic operation means and difference operation means, wherein the magnetic pole position estimation means receives the values corresponding to applied voltages and detected phase current values as outputs of the current sensors; the motor winding constant characteristic operation means calculates phase current at zero speed from the value corresponding to applied voltage; the difference operation means calculates a difference between the phase current at zero speed and the detected phase current value to obtain a magnetic pole position estimate from the differences.
 10. The stepping motor driver as claimed in claim 9, wherein the values corresponding to applied voltages are applied voltages.
 11. The stepping motor driver as claimed in claim 9, wherein the values corresponding to applied voltages are control voltages.
 12. The stepping motor driver as claimed in claim 9, wherein the values corresponding to applied voltages are inverter drive signals.
 13. The stepping motor driver as claimed in claim 9, further comprising an input terminal for a position command, wherein the position command and the magnetic pole position estimate are used to control a motor excitation position.
 14. The stepping motor driver as claimed in claim 13, wherein the magnetic pole position estimation means adds a current phase angle with respect to a motor rotation speed as generated by winding time constant to a motor rotation angle which is obtained from the differences, to obtain the magnetic pole position estimate.
 15. The stepping motor driver as claimed in claim 14, further comprising: an input terminal for a position command; a position error operation means which calculates a difference between the position command and a magnetic pole position estimate as output of the magnetic pole position estimation means; and a comparison means which detects that the position error exceeds a prescribed value.
 16. The stepping motor driver as claimed in claim 15, further comprising a speed command operation means which calculates a speed command from the position command, wherein the magnetic pole position estimation means calculates the phase angle from the speed command.
 17. The stepping motor driver as claimed in claim 14, wherein the magnetic pole position estimation means differentiates the motor rotation angle to obtain the phase angle.
 18. The stepping motor driver as claimed in claim 9, wherein the motor winding constant characteristic operation means each consist of a series circuit having a resistor and a capacitor arranged so as to provide the same time constant as the motor winding constant and the value corresponding to applied voltage is applied to the series circuit to output the result of multiplication of the terminal voltage of the capacitor by a coefficient as an output signal.
 19. The stepping motor driver as claimed in claim 9, wherein, regarding the values corresponding to applied voltages and the detected phase current values, coordinate transformation from multi-phase to 2-phase is made to obtain 2-phase equivalent signals and the 2-phase equivalent signals are entered as the values corresponding to applied voltages and the detected phase current values into the magnetic pole position estimation means. 